package cn.stylefeng.guns.sys.modular.system.model.result;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * <p>
 * 出勤_月度员工档案信息表
 * </p>
 *
 * @author wjk
 * @since 2021-09-14
 */
public class AttendEmployeeMonthResult implements Serializable {

    private static final long serialVersionUID = 1L;


    /**
     * id(主键)
     */
    private Long id;

    /**
     * 考勤的月份(YYYYMM)
     */
    private String attendMonth;

    /**
     * 同步的月份(YYYYMM)
     */
    private String synchronousMonth;

    /**
     * 员工身份表id
     */
    private Long btyArchicesId;

    /**
     * 店名
     */
    private String dm;

    /**
     * 姓名
     */
    private String xm;

    /**
     * 身份证
     */
    private String sfz;

    /**
     * 职位
     */
    private String zw;

    /**
     * 日期
     */
    private Date rq;

    /**
     * 联系方式
     */
    private String tel;

    /**
     * 银行卡号
     */
    private String yhk;

    /**
     * 备注
     */
    private String bz;

    /**
     * 区域
     */
    private String qy;

    /**
     * 二级区域
     */
    private String eqy;

    /**
     * 状态（0正常，1离职
     */
    private Integer zt;

    /**
     * 工资
     */
    private BigDecimal gz;

    /**
     * 工资额外
     */
    private BigDecimal gw;

    /**
     * openid
     */
    private String openid;

    /**
     * 银行
     */
    private String bank;

    /**
     * 行号
     */
    private String hh;

    /**
     * 卡片名称
     */
    private String cardName;

    /**
     * 银行卡状态
     */
    private Integer yhkStatus;

    /**
     * 出勤天数（两位整数，两位小数）
     */
    private Float attendanceDays;

    /**
     * 公休天数（两位整数，两位小数）
     */
    private Float holidayDays;

    /**
     * 应发工资=（（岗位工资+基本工资）/本月总天数）*（出勤天数+公休）
     */
    private BigDecimal shouldPay;

    /**
     * 是否发工资（0发，1不发）
     */
    private Integer payWage;

    /**
     * 店长备注
     */
    private String managerNote;

    /**
     * 状态（0同步过来的，1新增未同步到员工表的，2.新提交督导审核的，3.督导审核过的，4.督导驳回的，5.督导审核通过之后已经同步回员工表的）
     */
    private Integer synchronousStatus;

    /**
     * 在职状态修改(0,未被修改，1被修改为离职，或者修改调店信息，2.提交到到督导审核，3.督导审核过的，4.督导驳回的，5.督导审核通过之后已经同步回员工表的)
     */
    private Integer ztUpdate;

    /**
     * 督导审核状态表_id
     */
    private Long attendAuditId;

    /**
     * 状态（0正常，1离职）
     */
    private Integer ztNew;

    /**
     * 调店之后店名
     */
    private String dmOld;

    /**
     * 编号
     */
    private String bh;

    /**
     * 判断是不是人事表同步过来的的新员工(gz，gw工资为0的判断是新员工),是新员工的加状态“1”
     */
    private String btyArchicesNewEmp;

    /**
     * 判断是不是钉钉表同步过劳的新员工，若是则加状态"T"
     */
    private String dingdingNewEmp;

    /**
     * 职位修改前的职位，只记录一次
     */
    private String zwOld;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getAttendMonth() {
        return attendMonth;
    }

    public void setAttendMonth(String attendMonth) {
        this.attendMonth = attendMonth;
    }

    public String getSynchronousMonth() {
        return synchronousMonth;
    }

    public void setSynchronousMonth(String synchronousMonth) {
        this.synchronousMonth = synchronousMonth;
    }

    public Long getBtyArchicesId() {
        return btyArchicesId;
    }

    public void setBtyArchicesId(Long btyArchicesId) {
        this.btyArchicesId = btyArchicesId;
    }

    public String getDm() {
        return dm;
    }

    public void setDm(String dm) {
        this.dm = dm;
    }

    public String getXm() {
        return xm;
    }

    public void setXm(String xm) {
        this.xm = xm;
    }

    public String getSfz() {
        return sfz;
    }

    public void setSfz(String sfz) {
        this.sfz = sfz;
    }

    public String getZw() {
        return zw;
    }

    public void setZw(String zw) {
        this.zw = zw;
    }

    public Date getRq() {
        return rq;
    }

    public void setRq(Date rq) {
        this.rq = rq;
    }

    public String getTel() {
        return tel;
    }

    public void setTel(String tel) {
        this.tel = tel;
    }

    public String getYhk() {
        return yhk;
    }

    public void setYhk(String yhk) {
        this.yhk = yhk;
    }

    public String getBz() {
        return bz;
    }

    public void setBz(String bz) {
        this.bz = bz;
    }

    public String getQy() {
        return qy;
    }

    public void setQy(String qy) {
        this.qy = qy;
    }

    public String getEqy() {
        return eqy;
    }

    public void setEqy(String eqy) {
        this.eqy = eqy;
    }

    public Integer getZt() {
        return zt;
    }

    public void setZt(Integer zt) {
        this.zt = zt;
    }
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    public BigDecimal getGz() {
        return gz == null ? null : gz.setScale(0, BigDecimal.ROUND_HALF_UP);
        //return gz;
    }

    public void setGz(BigDecimal gz) {
        this.gz = gz;
    }
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    public BigDecimal getGw() {
        return gw == null ? null : gw.setScale(0, BigDecimal.ROUND_HALF_UP);
       // return gw;
    }

    public void setGw(BigDecimal gw) {
        this.gw = gw;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }

    public String getHh() {
        return hh;
    }

    public void setHh(String hh) {
        this.hh = hh;
    }

    public String getCardName() {
        return cardName;
    }

    public void setCardName(String cardName) {
        this.cardName = cardName;
    }

    public Integer getYhkStatus() {
        return yhkStatus;
    }

    public void setYhkStatus(Integer yhkStatus) {
        this.yhkStatus = yhkStatus;
    }

    public Float getAttendanceDays() {
        return attendanceDays;
    }

    public void setAttendanceDays(Float attendanceDays) {
        this.attendanceDays = attendanceDays;
    }

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @JSONField(format = "#")
    public Float getHolidayDays() {
        return holidayDays;
    }

    public void setHolidayDays(Float holidayDays) {
        this.holidayDays = holidayDays;
    }

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    public BigDecimal getShouldPay() {
        return shouldPay == null ? null : shouldPay.setScale(0, BigDecimal.ROUND_HALF_UP);
        //return shouldPay;
    }

    public void setShouldPay(BigDecimal shouldPay) {
        this.shouldPay = shouldPay;
    }

    public Integer getPayWage() {
        return payWage;
    }

    public void setPayWage(Integer payWage) {
        this.payWage = payWage;
    }

    public String getManagerNote() {
        return managerNote;
    }

    public void setManagerNote(String managerNote) {
        this.managerNote = managerNote;
    }

    public Integer getSynchronousStatus() {
        return synchronousStatus;
    }

    public void setSynchronousStatus(Integer synchronousStatus) {
        this.synchronousStatus = synchronousStatus;
    }

    public Integer getZtUpdate() {
        return ztUpdate;
    }

    public void setZtUpdate(Integer ztUpdate) {
        this.ztUpdate = ztUpdate;
    }

    public Long getAttendAuditId() {
        return attendAuditId;
    }

    public void setAttendAuditId(Long attendAuditId) {
        this.attendAuditId = attendAuditId;
    }

    public Integer getZtNew() {
        return ztNew;
    }

    public void setZtNew(Integer ztNew) {
        this.ztNew = ztNew;
    }

    public String getDmOld() {
        return dmOld;
    }

    public void setDmOld(String dmOld) {
        this.dmOld = dmOld;
    }

    public String getBh() {
        return bh;
    }

    public void setBh(String bh) {
        this.bh = bh;
    }

    public String getBtyArchicesNewEmp() {
        return btyArchicesNewEmp;
    }

    public void setBtyArchicesNewEmp(String btyArchicesNewEmp) {
        this.btyArchicesNewEmp = btyArchicesNewEmp;
    }

    public String getDingdingNewEmp() {
        return dingdingNewEmp;
    }

    public void setDingdingNewEmp(String dingdingNewEmp) {
        this.dingdingNewEmp = dingdingNewEmp;
    }

    public String getZwOld() {
        return zwOld;
    }

    public void setZwOld(String zwOld) {
        this.zwOld = zwOld;
    }
}
